import express from 'express';
import { checkSchema, validationResult } from 'express-validator'  
import util from 'utility'
import jwt from 'jsonwebtoken';  

const router = express.Router();

// 生成JWT令牌  
function generateToken(user) {  
    const secretKey = 'qfdixon'; // 替换为你的密钥  
    return jwt.sign( user , secretKey, { expiresIn: '48h' });  
}  



// 新增
router.post('/add', checkSchema({
    a:{ notEmpty: true, errorMessage: 'a不能为空' },
    b:{ notEmpty: true, errorMessage: 'b不能为空' },
    c:{ notEmpty: true, errorMessage: 'c不能为空' },
    d:{ notEmpty: true, errorMessage: 'd不能为空' },

}), async(req,res)=>{
    res.validator();  // 对于请求参数进行校验
    
    const { a,b,c,d} = req.body;
    await req.prisma.abc.create({
        data:{
            a,b,c,d
        }
    })
    res.success('新增完成')
})

// 删除abc

router.post('/del',checkSchema({
    id:{ notEmpty: true, errorMessage: 'id不能为空' },
}), async (req,res)=>{
    const { id } = req.body;
    await req.prisma.abc.delete({
        where:{
            id: Number(id)
        }
    })
    res.success('删除成功')
})

// 修改
router.post('/update', checkSchema({
    
    id:{ notEmpty: true, errorMessage: 'id不能为空' },


}), async(req,res)=>{
    res.validator();  // 对于请求参数进行校验
    
    const { a,b,c,d ,id} = req.body;
    const updateData = {}
    if(a) updateData.a = a
    if(b) updateData.b = b
    if(c) updateData.c = c
    if(d) updateData.d = d

    
    await req.prisma.abc.update({
        where:{
            id: Number(id)
        },
        data:updateData
    })
    res.success('修改')
})


//  查一个
router.post('/getone',checkSchema({
    id:{ notEmpty: true, errorMessage: 'id不能为空' },
}), async (req,res)=>{
    const { id } = req.body;
    const info = await req.prisma.abc.findFirst({
        where:{
            id: Number(id)
        }
    })
    res.success(info)
})


router.post('/list', async (req,res)=>{
    const { page =1,limit= 20 } = req.body;
    const list = await req.prisma.abc.findMany({
        take: Number(limit),
        skip: (Number(page) -1 )* Number(limit)
    })
    const count = await req.prisma.abc.count();
    res.success({
        list,
        count
    })
})









export default router;